/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Administrador.Interfaz;

import BD.GestorPersonal;
import java.awt.Component;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Calendar;

import javax.swing.*;
import org.freixas.jcalendar.JCalendar;
import org.freixas.jcalendar.JCalendarCombo;

/**
 *
 * @author lisafbe
 */
public class InterfazPersonal implements ActionListener {

    public JButton btRegistrar, btEliminar, btConsultar, btModificar;
    int numeroVentas;

    //Para el registro
    JTextField tfNombrer, tfApellidosr, tfDireccionr, tfTelefonor, tfCedular;
    JCalendarCombo cFechaNr;
    JPasswordField contrasena;
    //para modificar
    JTextField tfDireccionm, tfTelefonom, tfCedulam;
    //consultar
    JTextField tfNombrec, tfApellidosc, tfDireccionc, tfTelefonoc, tfFechac, tfCedulac, tfNumerovc;
    //eliminar
    JTextField tfCedulae;

    private GestorPersonal objGestorP = new GestorPersonal();
    private Validador objValidador = new Validador();

    public JPanel registrarPersonal() {
        JLabel lbnombrer, lbApellidor, lbDireccionr, lbTelefonor, lbContrasenar, lbCedular, lbFechaNr, lbCargor;

        JComboBox cbCargo;

        JPanel panelRegistro = new JPanel();

        panelRegistro.setLayout(null);
        panelRegistro.setOpaque(false);

        lbnombrer = new JLabel("Nombre");
        lbApellidor = new JLabel("Apellido");
        lbCedular = new JLabel("Cedula");
        lbDireccionr = new JLabel("Direccion");
        lbTelefonor = new JLabel("Telefono");
        lbFechaNr = new JLabel("Fecha de Nacimiento");
        lbCargor = new JLabel("Cargo");
        lbContrasenar = new JLabel("Contraseña");

        tfNombrer = new JTextField();
        tfDireccionr = new JTextField();
        tfTelefonor = new JTextField();
        tfApellidosr = new JTextField();
        tfCedular = new JTextField();

        btRegistrar = new JButton("Registrar");
        btRegistrar.setBounds(350, 340, 140, 40);
        btRegistrar.addActionListener(this);

        lbnombrer.setFont(Font.decode("Verdana-BOLD-14"));
        lbApellidor.setFont(Font.decode("Verdana-BOLD-14"));
        lbDireccionr.setFont(Font.decode("Verdana-BOLD-14"));
        lbTelefonor.setFont(Font.decode("Verdana-BOLD-14"));
        lbContrasenar.setFont(Font.decode("Verdana-BOLD-14"));
        lbCedular.setFont(Font.decode("Verdana-BOLD-14"));
        lbFechaNr.setFont(Font.decode("Verdana-BOLD-14"));
        lbCargor.setFont(Font.decode("Verdana-BOLD-14"));

        lbnombrer.setForeground(Color.WHITE);
        lbApellidor.setForeground(Color.WHITE);
        lbDireccionr.setForeground(Color.WHITE);
        lbTelefonor.setForeground(Color.WHITE);
        lbContrasenar.setForeground(Color.WHITE);
        lbCedular.setForeground(Color.WHITE);
        lbFechaNr.setForeground(Color.WHITE);
        lbCargor.setForeground(Color.WHITE);

        lbnombrer.setBounds(50, 90, 152, 40);
        lbApellidor.setBounds(446, 90, 170, 40);
        lbCedular.setBounds(50, 150, 120, 40);
        lbFechaNr.setBounds(446, 150, 160, 40);
        lbDireccionr.setBounds(50, 210, 170, 40);
        lbTelefonor.setBounds(446, 210, 120, 40);
        lbCargor.setBounds(50, 270, 120, 40);
        lbContrasenar.setBounds(446, 270, 120, 40);

        tfNombrer.setBounds(190, 100, 200, 30);
        tfApellidosr.setBounds(580, 100, 200, 30);
        tfCedular.setBounds(190, 150, 200, 30);
        tfDireccionr.setBounds(190, 210, 200, 30);
        tfTelefonor.setBounds(580, 210, 200, 30);

        cbCargo = new JComboBox(new String[]{"Cajero"});
        cbCargo.setBounds(190, 270, 150, 30);

        cFechaNr = new JCalendarCombo();
        cFechaNr.setBounds(620, 150, 160, 30);
        contrasena = new JPasswordField();
        contrasena.setBounds(580, 270, 200, 30);

        panelRegistro.setBounds(184, 20, 870, 490);

        panelRegistro.add(lbnombrer);
        panelRegistro.add(lbApellidor);
        panelRegistro.add(lbDireccionr);
        panelRegistro.add(lbTelefonor);
        panelRegistro.add(lbCargor);
        panelRegistro.add(lbCedular);
        panelRegistro.add(lbContrasenar);
        panelRegistro.add(lbFechaNr);

        panelRegistro.add(tfNombrer);
        panelRegistro.add(tfApellidosr);
        panelRegistro.add(tfDireccionr);
        panelRegistro.add(tfTelefonor);
        panelRegistro.add(cFechaNr);
        panelRegistro.add(contrasena);
        panelRegistro.add(tfCedular);
        panelRegistro.add(cbCargo);
        panelRegistro.add(btRegistrar);

        return panelRegistro;

    }

    public JPanel modificarPersonal() {
        JPanel panelModificar = new JPanel();

        JLabel lbCedula, lbDireccion, lbTelefono;

        panelModificar.setLayout(null);
        panelModificar.setOpaque(false);

        lbCedula = new JLabel("Cedula del Empleado a Modificar");
        lbDireccion = new JLabel("Direccion");
        lbTelefono = new JLabel("Telefono");

        tfCedulam = new JTextField();
        tfDireccionm = new JTextField();
        tfTelefonom = new JTextField();

        btModificar = new JButton("Modificar");

        btModificar.setBounds(350, 320, 140, 40);
        btModificar.addActionListener(this);

        lbCedula.setFont(Font.decode("Verdana-BOLD-14"));
        lbDireccion.setFont(Font.decode("Verdana-BOLD-14"));
        lbTelefono.setFont(Font.decode("Verdana-BOLD-14"));

        lbCedula.setForeground(Color.WHITE);
        lbDireccion.setForeground(Color.WHITE);
        lbTelefono.setForeground(Color.WHITE);

        lbCedula.setBounds(50, 90, 270, 30);
        lbDireccion.setBounds(50, 156, 79, 30);
        lbTelefono.setBounds(50, 216, 70, 29);

        tfDireccionm.setBounds(160, 156, 200, 28);
        tfTelefonom.setBounds(160, 216, 200, 28);
        tfCedulam.setBounds(330, 90, 160, 30);

        panelModificar.setBounds(184, 20, 870, 490);

        panelModificar.add(lbCedula);
        panelModificar.add(lbDireccion);
        panelModificar.add(lbTelefono);
        panelModificar.add(tfCedulam);
        panelModificar.add(tfDireccionm);
        panelModificar.add(tfTelefonom);
        panelModificar.add(btModificar);

        return panelModificar;
    }

    public JPanel consultarPersonal() {

        JLabel lbnombre, lbApellido, lbDireccion, lbTelefono, lbCedula, lbFechaN, lbNumerov;

        JPanel panelConsulta = new JPanel();
        panelConsulta.setLayout(null);
        panelConsulta.setOpaque(false);

        lbnombre = new JLabel("Nombre");
        lbApellido = new JLabel("Apellido");
        lbCedula = new JLabel("Cedula del Empleado a Consultar");
        lbDireccion = new JLabel("Direccion");
        lbTelefono = new JLabel("Telefono");
        lbFechaN = new JLabel("Fecha de Nacimiento");
        lbNumerov = new JLabel("N0 de Ventas");

        tfNombrec = new JTextField("Nombres");
        tfDireccionc = new JTextField("Direccion");
        tfTelefonoc = new JTextField("Telefono");
        tfApellidosc = new JTextField("Apellidos");
        tfFechac = new JTextField("Fecha Nacimiento");
        tfCedulac = new JTextField();
        tfNumerovc = new JTextField("0");

        btConsultar = new JButton("Consultar");
        btConsultar.setFont(Font.decode("Arial-BOLD-12"));
        btConsultar.setBounds(500, 60, 150, 30);
        btConsultar.addActionListener(this);

        lbnombre.setFont(Font.decode("Verdana-BOLD-14"));
        lbApellido.setFont(Font.decode("Verdana-BOLD-14"));
        lbDireccion.setFont(Font.decode("Verdana-BOLD-14"));
        lbTelefono.setFont(Font.decode("Verdana-BOLD-14"));
        lbCedula.setFont(Font.decode("Verdana-BOLD-14"));
        lbFechaN.setFont(Font.decode("Verdana-BOLD-14"));
        lbNumerov.setFont(Font.decode("Verdana-BOLD-14"));

        lbnombre.setForeground(Color.WHITE);
        lbApellido.setForeground(Color.WHITE);
        lbDireccion.setForeground(Color.WHITE);
        lbTelefono.setForeground(Color.WHITE);
        lbCedula.setForeground(Color.WHITE);
        lbFechaN.setForeground(Color.WHITE);
        lbNumerov.setForeground(Color.WHITE);

        lbCedula.setBounds(50, 60, 270, 30);
        lbnombre.setBounds(50, 150, 152, 40);
        lbApellido.setBounds(400, 150, 152, 40);
        lbFechaN.setBounds(50, 210, 200, 40);
        lbDireccion.setBounds(400, 210, 152, 40);
        lbTelefono.setBounds(50, 270, 152, 40);
        lbNumerov.setBounds(400, 270, 152, 40);

        tfNombrec.setBounds(210, 150, 160, 30);
        tfApellidosc.setBounds(520, 150, 160, 30);
        tfDireccionc.setBounds(520, 210, 200, 30);
        tfTelefonoc.setBounds(210, 270, 160, 30);
        tfFechac.setBounds(210, 210, 160, 30);
        tfCedulac.setBounds(330, 60, 160, 30);
        tfNumerovc.setBounds(520, 270, 160, 30);

        panelConsulta.setBounds(184, 20, 870, 490);

        panelConsulta.add(lbnombre);
        panelConsulta.add(lbApellido);
        panelConsulta.add(lbDireccion);
        panelConsulta.add(lbTelefono);
        panelConsulta.add(lbNumerov);
        panelConsulta.add(lbCedula);

        panelConsulta.add(lbFechaN);

        panelConsulta.add(tfNombrec);
        panelConsulta.add(tfApellidosc);
        panelConsulta.add(tfDireccionc);
        panelConsulta.add(tfTelefonoc);
        panelConsulta.add(tfFechac);
        panelConsulta.add(tfCedulac);
        panelConsulta.add(tfNumerovc);
        panelConsulta.add(btConsultar);
        return panelConsulta;
    }

    public JPanel eliminarPersonal() {
        JLabel lbNCedula;

        JPanel panelEliminar = new JPanel();
        panelEliminar.setLayout(null);
        panelEliminar.setOpaque(false);
        panelEliminar.setBounds(184, 20, 870, 490);

        lbNCedula = new JLabel("Numero de cedula del empleado a eliminar");
        lbNCedula.setFont(Font.decode("Verdana-BOLD-14"));
        lbNCedula.setForeground(Color.WHITE);
        lbNCedula.setBounds(50, 90, 380, 30);

        tfCedulae = new JTextField();
        tfCedulae.setBounds(390, 90, 150, 30);

        btEliminar = new JButton("Eliminar");
        btEliminar.setFont(Font.decode("Arial-BOLD-12"));
        btEliminar.setBounds(350, 200, 140, 40);
        btEliminar.addActionListener(this);

        panelEliminar.setBounds(184, 20, 870, 490);

        panelEliminar.add(lbNCedula);
        panelEliminar.add(tfCedulae);
        panelEliminar.add(btEliminar);
        return panelEliminar;
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == btRegistrar) {

            String nCedula = tfCedular.getText();
            String nombres = tfNombrer.getText();
            String apellidos = tfApellidosr.getText();
            Calendar fechaNacimiento = cFechaNr.getCalendar();;
            String direccion = tfDireccionr.getText();
            String telefono = tfTelefonor.getText();
            String tcontrasena = new String(contrasena.getPassword());
            if (objValidador.validarDatosPersonal(nCedula, nombres, apellidos, fechaNacimiento, direccion, telefono, tcontrasena) == true) {
                objGestorP.registrarEmpleado(nCedula, nombres, apellidos, fechaNacimiento, direccion, telefono, "Cajero", tcontrasena);
                tfCedular.setText(null);
                tfNombrer.setText(null);
                tfApellidosr.setText(null);
                tfDireccionr.setText(null);
                tfTelefonor.setText(null);
                contrasena.setText(null);
            }
        } else {
            if (e.getSource() == btConsultar) {
                
              String cedula= tfCedulac.getText();
              ArrayList<String> datos= new ArrayList<String>();
              if (objValidador.nulo(cedula) == true) {
              datos= objGestorP .consultarEmpleado(cedula); 
              tfNombrec.setText(datos.get(0));
              tfApellidosc.setText(datos.get(1));
              tfDireccionc.setText(datos.get(2));
              tfTelefonoc.setText(datos.get(3));
              tfFechac.setText(datos.get(4));
             
            } }
            
            else {
                if (e.getSource() == btModificar) {
                    String direccion = tfDireccionm.getText();
                    String tel = tfTelefonom.getText();
                    String cedula = tfCedulam.getText();
                    if (objValidador.nulo(cedula) == true) {
                         
                        if (objValidador.nulo(direccion) == true) {
                            objGestorP.ModificarEmpleado(cedula,null, direccion);
                        } else {
                            if (objValidador.nulo(tel) == true) {
                                objGestorP.ModificarEmpleado(cedula,tel, null);

                            } else{
                            objGestorP.ModificarEmpleado(cedula,tel, direccion);
                        }}

                    }

                } else {
                    if (e.getSource() == btEliminar) {
                        String cedula = tfCedulae.getText();
                        if (objValidador.nulo(cedula) == true) {
                            objGestorP.eliminarEmpleado(cedula);
                            tfCedulae.setText(null);
                        }

                    }
                }

            }

        }
    }
}
